/**
* This file is part of the dashboard library
* 
* Copyright 2025 lishiying  lsyeei@163.com
* 
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* 
* http://www.apache.org/licenses/LICENSE-2.0
* 
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#ifndef HTMLPROPERTYFORM_H
#define HTMLPROPERTYFORM_H

#include "ksyntaxhighlighting/repository.h"
#include <QWidget>

namespace KSyntaxHighlighting
{
class SyntaxHighlighter;
}

class HtmlEditorForm;
namespace Ui {
class HtmlPropertyForm;
}

class HtmlPropertyForm : public QWidget
{
    Q_OBJECT

public:
    explicit HtmlPropertyForm(QWidget *parent = nullptr);
    ~HtmlPropertyForm();
    void setHtml(const QString &data);

Q_SIGNALS:
    void htmlChanged(const QString &data);

protected Q_SLOTS:
    void onEditButtonClicked();
    void onEditEnd(const QString &data);
    /**
     * @brief syncText获取编辑器中的文字
     */
    void syncText();

private:
    Ui::HtmlPropertyForm *ui;
    KSyntaxHighlighting::Repository m_repository;
    KSyntaxHighlighting::SyntaxHighlighter *m_highlighter;
    // HtmlEditorForm *editor{nullptr};

    void setEditorHighlight();
    
    void createEditor();
};

#endif // HTMLPROPERTYFORM_H
